iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 6
0
自我挑戰組

Tensorflow.js初學筆記系列 第 6

Day5 Tensorflow.js機器學習Part5

  • 分享至 

  • xImage
  •  

Neural Networks

要如何處理非線性問題?
只要在其中加入非線性函數轉換層就行
圖片取自https://developers.google.com/machine-learning/crash-course/introduction-to-neural-networks/anatomy

這些非線性轉換層所使用的非線性函數稱之為Activation Functions。

常用的幾種Activation Functions有sigmoid、rectified linear unit(ReLU)

基本上神經網路會
有各個節點位於層中,各有各的偏差值
以權重表示各層之間的連結
非線性函數對每個節點進行轉換

Training Neural Networks

Backpropagation(反向傳播)是常見的一種神經網路訓練算法,這個部分TensorFlow已經可以處理包好了,不需要特別學習,Google有提供視覺化的解釋參考這裡,簡單來說就是,透過反向推導,可以求解各層的梯度,來進行梯度下降法,求解各層的權重最佳解。

基本上再使用反向傳播時要注意的常見錯誤有
1.梯度在靠近輸入層的地方會變得很小,這些層的訓練速度會很慢
->可以透過ReLU來防止梯度消失
2.權重過大,導致梯度過大難以收斂
->資料必須預處理,讓特徵尺度一致
3.ReLU的神經元死亡,當權重和過小時,會讓ReLU的神經元不再貢獻任何有用的值,梯度無法透過此神經元往下傳播。
->降低學習速率

Multi-Class Neural Networks

如何建立多類別的分類,一種簡單的方式就是透過原本的二元分類方式,也就是說模型內會有多個二元分類器,辨別狗、蘋果、熊、貓的分類器,訓練完後在識別狗的照片時,狗的二元分類器會說是,其他則是回答否,以此來建立多類別分類器,但這樣有個缺點,當類別數量增加的時候,效率會變得非常的差。


上一篇
Day4 Tensorflow.js機器學習Part4
下一篇
Day6 Tensorflow.js機器學習Part6
系列文
Tensorflow.js初學筆記27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言